#ifndef IDOXYFILE_H
#define IDOXYFILE_H

#include <QtCore>
#include "RefrenceItem.h"

class IDoxyFile
{
  public:

    virtual ~IDoxyFile(){}
    /**
     * @brief getFileName Get the name of the file as represented by the file
     * @return The file name including it's path
     */
    virtual QString getFileName() const = 0;

    /**
     * @brief getDoxRef Gets the refrence number of the file in doxygen format, this unique identifier allows for the file to be relocated
     * @return The refrence
     */
    virtual QString getDoxRef() const = 0;



    /**
     * @brief getIncludedBy Gets all the files that also include this file
     * @param files
     */
    virtual void getIncludedBy(QList<RefItem>& files) const= 0;


    /**
     * @brief getLocalIncludes Gets all the files that have been included by this class, that have also been processed by doxygen
     * @param files A list that will be populated with all of the local file includes
     */
    virtual void getLocalIncludes(QList<RefItem>& files) const= 0;


    /**
     * @brief getExternalIncludes Gets all the files that are included by this class but have not been processed by doxygen
     * @param files A list of external to doxygen file includes.
     */
    virtual void getExternalIncludes(QStringList& files) const = 0;


    /** @todo add method for getting class information from the file.**/

};

#endif // IDOXYFILE_H
